package greedy;

import java.util.HashSet;

/**
 * @author tongchen
 * @create 2023-03-09 9:01
 * 思路：循环处理灯：判断当前位置为X的时候不做选择，当前位置是.的时候选择放入和不放入
 */
public class LightsForViolence {
    public static void main(String[] args) {

    }
    public int process(char[]places, int index, HashSet<Integer>lights){
        //当index走到最后的时候，从头到尾依次判断这次的放入灯的策略是否正确
        if(index==places.length){
            //遍历检查有效性
            for (int i = 0; i < places.length; i++) {
                if(places[i]!='X'){
                    if(lights.contains(i-1)&&lights.contains(i)&&lights.contains(i+1)){
                        //这种情况不合理
                        return  Integer.MAX_VALUE;
                    }
                }
            }
            return lights.size();
        }else {
            //没有走到最后
            int no=process(places, index+1, lights);
            int yes=Integer.MAX_VALUE;

            if(places[index]=='.'){
                lights.add(index);
                 yes=process(places, index+1, lights);
            }


            return Math.min(yes,no);
        }
    }

}
